/**
Node.js 的  Express  是一个快速、灵活且极简的 web 应用框架，基于 Node.js 平台构建，旨在简化 Web 应用程序的开发。
  1. Express 概述
  Express  提供了一系列强大的功能，使得开发 Web 应用程序和 API 变得更加简单。它支持中间件、路由、请求和响应处理等功能，适合构建各种规模的应用。

  2. 安装 Express
  在使用 Express 之前，需要先安装它。可以通过 npm（Node 包管理器）来安装：
  npm install express
  3. 创建基本的 Express 应用
  以下是创建一个简单的 Express 应用的步骤：

   3.1 引入 Express 模块
  const express = require('express');
  const app = express();
   3.2 定义路由
  使用  app.get()  方法定义路由，处理 GET 请求：
  app.get('/', (req, res) => {
      res.send('Hello, Express!');
  });
   3.3 启动服务器
  使用  app.listen()  方法启动服务器：
  const PORT = 3000;
  app.listen(PORT, () => {
      console.log(服务器正在运行在 http://localhost:${PORT});
  });
   3.4 完整示例
  const express = require('express');
  const app = express();

  app.get('/', (req, res) => {
      res.send('Hello, Express!');
  });

  const PORT = 3000;
  app.listen(PORT, () => {
      console.log(服务器正在运行在 http://localhost:${PORT});
  });
  4. 中间件
  中间件是 Express 的核心概念之一。中间件是一个函数，可以访问请求对象、响应对象和下一个中间件函数。中间件可以用于处理请求、执行代码、修改请求和响应对象等。

   4.1 使用内置中间件
  // 解析 JSON 请求体
  app.use(express.json());
   4.2 自定义中间件
  app.use((req, res, next) => {
      console.log(${req.method} ${req.url});
      next(); // 调用下一个中间件
  });
  5. 路由
  Express 支持灵活的路由定义，可以根据请求方法和路径定义不同的处理函数。

   5.1 路由示例
  app.get('/user', (req, res) => {
      res.send('用户信息');
  });

  app.post('/user', (req, res) => {
      res.send('创建用户');
  });
  6. 错误处理
  Express 提供了错误处理中间件，可以捕获应用中的错误并进行处理。

   示例
  app.use((err, req, res, next) => {
      console.error(err.stack);
      res.status(500).send('服务器错误!');
  });
  7. 总结
  Express 是一个功能强大且灵活的 Web 应用框架，适合用于构建各种类型的 Web 应用和 API。通过中间件、路由和错误处理等功能，开发者可以快速搭建高效的服务器应用。掌握 Express 的基本用法对于 Node.js 开发者来说是非常重要的。
 */
const express = require("express");

const app = express(); // 创建一个express应用

app.post("/login", (req, res) => {
  res.end("登录成功");
});

app.get("/register", (req, res) => {
  res.setHeader("Content-Type", "text/html; charset=utf-8");
  res.end("注册成功");
});

// 监听端口
app.listen(9000, () => {
  console.log("服务器正在运行在 http://localhost:9000");
});
